package com.chao.service;

import java.util.Date;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.chao.message.resq.TextMessage;
import com.chao.util.MessageUtil;

/**
 * 核心服务类
 * @author Administrator
 *
 */
public class CoreServices {
	 /** 
     * 处理微信发来的请求 
     */  
    public static String processRequest(HttpServletRequest request) {  
        // 返回给微信服务器的xml消息  
        String respXml = null;  
        try {  
            // xml请求解析  
            Map<String, String> requestMap = MessageUtil.parseXml(request);  
            // 发送方帐号（open_id）  
            String fromUserName = requestMap.get("FromUserName");  
            // 公众帐号  
            String toUserName = requestMap.get("ToUserName");  
            // 消息类型  
            String msgType = requestMap.get("MsgType");  
  
            // 回复文本消息  
            TextMessage textMessage = new TextMessage();  
            textMessage.setToUserName(fromUserName);  
            textMessage.setFromUserName(toUserName);  
            textMessage.setCreateTime(new Date().getTime());  
            textMessage.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_TEXT);  
  
            // 图片消息  
            if (MessageUtil.REQ_MESSAGE_TYPE_IMAGE.equals(msgType)) {  
                // 取得图片地址  
                String picUrl = requestMap.get("PicUrl");  
                // 人脸检测  
                String detectResult = FaceService.detect(picUrl);  
                textMessage.setContent(detectResult);  
            }  
            // 其它类型的消息  
            else  
                textMessage.setContent(getUsage());  
  
            respXml = MessageUtil.textMessageToXml(textMessage);  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return respXml;  
    }  
  
    /** 
     * 人脸检测帮助菜单 
     */  
    public static String getUsage() {  
        StringBuffer buffer = new StringBuffer();  
        buffer.append("人脸检测使用指南").append("\n\n");  
        buffer.append("发送一张清晰的照片，就能帮你分析出种族、年龄、性别等信息").append("\n");  
        buffer.append("快来试试你是不是长得太着急");  
        return buffer.toString();  
    }  
}
